1. Field of the Invention
Apparatuses and methods consistent with the present invention relate to managing a bad run-time block in a multi-level cell (MLC) flash memory, and more particularly, to managing a bad run-time block in an MLC flash memory.
2. Description of the Related Art
Flash memories are widely used in mobile digital devices such as mobile phones, personal data assistants (PDAs), MP3 players, navigation devices, and digital cameras, and as a result there is an increasing demand for low-cost flash memories.
Current flash memories are a single level cell (SLC) NAND in which each cell can contain one bit of information. However, the use of an MLC NAND flash memory in which each cell can contains information various bits, which is superior to SLC flash memory in price and capacity, is increasing.
For example, in a SLC flash memory, a single cell can express the information “1” or “0”, and in a two-level MLC flash memory, a single cell can express the information “00”, “01”, “11”.
In addition, the MLC flash memory can express a variety of bit information on a cell in a bit split manner and in a page slit manner.
The MLC flash memory having the bit split manner can indicate the information on a variety of bits in the same page by using a single cell, and the MLC flash memory having the page split manner can indicate the information on the bits in several pages by using a single cell.
The flash memory can convert the cell status through an erase and program operation. If the cell status is not changed, an error is generated.
For reference, the term “program” used in the exemplary embodiments of the present invention, refers to the conversion of the bit information (from “0” to “1” or from “1” to “0”) expressed in a cell in the MLC flash memory. Also, an error that occurs due to deletion or a program error can be discovered by reading the status register of a flash memory.
When the error mentioned above occurs, the MLC flash memory having a page split manner programs a specific page included in a cell, so that other page included in the identical cell can be influenced.
FIG. 1 is a block diagram illustrating configuration of a flash memory in the related art.
The flash memory can be divided into a user partition 110 and a reserved partition 120 which will substitute for a bad block 111 generated in the user partition 110. When a bad block 111c is generated in the specific block of the user partition 110, it is divided into a block-management module 130 which substitutes the corresponding bad block 111c with a free block of the reserved partition 120 and data buffer 140 which stores the data.
For example, in case of the MLC having a page split manner which allows two bits of information to be included in a cell, a page 4N+0 (111a) and a page 4N+2 (111c) are included in the same cell. Therefore, if a program error occurs while programming the page 4N+2 (111c), data of the 4N+0 (111a) can be damaged.
The block wherein an error has occurred due to the program error is changed into a bad run-time block.
For reference, the page 4N+0 (111a) is called an LSB page in a cell, and the page 4N+2 (111c) is called an MSB page in a cell.
In addition, in case of the MLC flash memory, a number of partial programs (NOP) is limited to one, and an order of page program in a block should be performed from the smaller number to the greater one.
The bad block may be generated by a program error or deletion error.
If the bad block 111 caused by a program error occurs in the user partition 110 illustrated in FIG. 1, a block-management module 130 selects a free block 121 which was not used in a reservation partition 120 and copies all data in the bad block 111 to the free block 121 in a page unit.
After the page 111c, in which a program error of the bad block 111 has occurred, is copied, the corresponding data stored in data buffer 140 is additionally copied to the free block 121. That is, a situation where the same page is copied twice in the free block 121 can occur.
The MLC flash memory having a page split manner can indicate several pages with a single cell. Therefore, other page included in the cell may be influenced if the specific page included in the cell is programmed. In addition, since the NOP of the MLC flash memory is limited to “1”, the data trust cannot be secured.